package com.google.code.guava.reflect.predicate;

import java.lang.reflect.Member;

import com.google.common.base.Predicate;

class MemberQualifiersPredicate<T extends Member> extends QualifiersPredicate<T>{

    public static <X extends Member> Predicate<X> newMethodModifiersPredicate(
        final Qualifier[] knownModifiers,
        final QualifierEvalutionStrategy strategy){
        return new MemberQualifiersPredicate<X>(
            knownModifiers, strategy, QualifiedType.MethodType);
    }

    private MemberQualifiersPredicate(final Qualifier[] modifiers,
        final QualifierEvalutionStrategy strategy, final QualifiedType type){
        super(strategy, modifiers, type);
    }

    @Override
    protected int getModifierMask(final T member){
        return member.getModifiers();
    }

}
